技術問答
技術文章
iT 徵才
Tag
聊天室
2023 鐵人賽
登入/註冊
問答
文章
Tag
邦友
鐵人賽
搜尋
2023 iThome 鐵人賽
DAY
4
0
Odoo
Odoo 14 Javascript 開發心路歷程
系列 第
4
篇
Day 4 生命週期介紹
15th鐵人賽
大河
2023-09-04 08:04:22
676 瀏覽
分享至
Document:
https://www.odoo.com/documentation/14.0/developer/reference/javascript/javascript_reference.html#widget-lifecycle
在官方文件上,主要列出五個階段
Init: 初始化
willStart: 即將渲染
[Rendering]: 渲染中
Start: 渲染完成
Destroy: 摧毀
以上四個階段皆只在生命週期執行一次而已,但實務上可能會有回到畫面就需要更新一次的需求,從原始碼中也可以看到額外的階段如下,以下會稍微簡單介紹一下筆者對於各階段的認知
Init: 初始化
顧名思義,就是在 widget 實例化時會觸發的,整個生命週期只會觸發一次,帶入的參數為 parent, options
Parent: 是父組件,通常不會傳其他的,如果有其他的,需要看一下是否有註解解釋為何拋非組件的物件
Options: 就是個 object,在此階段可以針對 options 來進行過濾並取出所需的資訊
willStart: 即將渲染
這裡筆者是理解成渲染前,組件內部成員 $el 還是 undefined,在這個階段會把組件有定義的 cssLibs, jsLibs, xmlDependcies 會一併請求,因此需要回傳 Promise 物件
[Rendering]: 渲染中
此階段在文件中寫是在框架中自動完成,這裡會依照 widget 的設定來決定 el, $el 結果
Start: 渲染完成
組件成員 el, $el 已經有資料,而 $ 開頭的成員,通常代表是 jquery 的選擇器,所以可以用 jquery 的語法來鏈結操作,而 el 則是直接指向 dom 物件
通常此階段會是針對渲染好的物件進行額外的行內樣式、class 增減...等操作
此階段也必須回傳 Promise 物件
On_attach_callback: 回到畫面
!此階段會多次觸發,不論是第一次進入畫面,或是經由麵包屑回到畫面都會觸發
On_detach_callback: 離開畫面
!此階段會多次觸發,只要離開畫面或是點關聯欄位跳到下一個 view 就會觸發
Destroy: 摧毀
此階段只會觸發一次
留言
追蹤
檢舉
上一篇
Day 3 開發前的基本所需知識簡介
下一篇
Day 5 實作 1: Say Hi to field widget!
系列文
Odoo 14 Javascript 開發心路歷程
共
30
篇
目錄
RSS系列文
訂閱系列文
7
人訂閱
26
Day 26 實作 12: 建立 action client view - 增加按鈕能快速跳轉到報價單
27
Day 27 custom_events 介紹
28
Day 28 widget 的 lazy load 介紹
29
Day 29 知識推薦 - throttle, debounce 的應用
30
Day 30 結尾
完整目錄
直播研討會
{{ item.subject }}
{{ item.channelVendor }}
{{ item.webinarstarted }}
|
{{ formatDate(item.duration) }}
直播中
立即報名
尚未有邦友留言
立即登入留言
iThome鐵人賽
參賽組數
1123
組
團體組數
52
組
累計文章數
23096
篇
完賽人數
656
人
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
看更多
15th鐵人賽
13th鐵人賽
14th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
2018鐵人賽
javascript
2017鐵人賽
python
windows
php
c#
windows server
linux
css
程式設計
react
vue.js
熱門問題
老婆line被盜用換sin卡也無法拿回帳號使用權
自家官網連線不到 (已解決)
ISO 27001改版輔導顧問公司推薦
請教各位前輩關於 IT 管理者為 User 重設 AD 帳號的密碼的行政流程
自我改善工作人際態度邊界
遠端連線到虛擬機器上,並希望能聽到音效
怎麼才能免費申請
請問有提供對外http連線服務的主機,都需要上SSL嗎?
如果當超人拯救了別人,世界真的需要超人嗎?
筆電蓋上背蓋無法開機,背蓋拆掉就正常(已解決)
熱門回答
如果當超人拯救了別人,世界真的需要超人嗎?
自家官網連線不到 (已解決)
請問有提供對外http連線服務的主機,都需要上SSL嗎?
遠端連線到虛擬機器上,並希望能聽到音效
win10更改資料夾顏色
熱門文章
Vigor Router Firewall NAT 一開全球通,如何做限制,只允許白名單IP通過,甚至敲門再開 TOTP 驗證
使用JS解構賦值踩到的雷
你知道駭客如何入侵你的網站嗎?
WINDOWS遠端桌面的連接PORT如何修改
【程式開發筆記】十分鐘快速上手 CCS,選擇器 (Selector) - 大漠國渡
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}